import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import postcsspxtoviewport from "postcss-px-to-viewport";
import AutoImport from 'unplugin-auto-import/vite'
import { join } from "path";
// let {join} = require('path')
// https://vitejs.dev/config/
export default defineConfig({
    plugins: [vue(),AutoImport({
        imports:[
            'vue',
            'pinia',
            'vue-router',
        ],
        dts: 'src/auto-imports.d.ts',
    })],
    base: "/",
    resolve: {
        alias: {
            "@": join(__dirname, "src"), //需要配合tsconfig.json文件配置baseUrl和paths设置src别名@
        },
    },
    css: {
        postcss: {
            // //rem的适配方案，需要下载插件
            // plugins: [
            //   postCssPxToRem({
            //     rootValue: 37.5, // 1rem的大小 以375px原型图为基准
            //     propList: ['*'], // 需要转换的属性，这里选择全部都进行转换
            //   })
            // ],
            // //vw的适配方案，需要下载插件
            // plugins: [
            //     postcsspxtoviewport({
            //         unitToConvert: "px", // 要转化的单位
            //         viewportWidth: 375, // UI设计稿的宽度
            //         unitPrecision: 2, // 转换后的精度，即小数点位数
            //         propList: ["*"], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
            //         viewportUnit: "vw", // 指定需要转换成的视窗单位，默认vw
            //         fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位，默认vw
            //         selectorBlackList: ["ignore-"], // 指定不转换为视窗单位的类名，
            //         minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
            //         mediaQuery: true, // 是否在媒体查询的css代码中也进行转换，默认false
            //         replace: true, // 是否转换后直接更换属性值
            //         exclude: [/node_modules/], // 设置忽略文件，用正则做目录名匹配
            //         // exclude: [],
            //         landscape: false, // 是否处理横屏情况
            //     }),
            // ],
        },
        preprocessorOptions: {
            less: {
                javascriptEnabled: true,
                modifyVars: {
                    "@primary-color": "#4377FE", //设置antd主题色
                },
            },
        },
        
    },
    server: {
        port: 3000,
        proxy: {
            "/api": {
                // target: "http://127.0.0.1:27017",
                target: "http://127.0.0.1:3001",
                changeOrigin: true,
                rewrite: (path) => path.replace(/^\/api/, ""),
            },
        },
    },
    define: {
        "process.env": {}
      },
      build: {
        target: 'modules',
        outDir: 'dist', //指定输出路径
        assetsDir: 'assets', // 指定生成静态资源的存放路径
        minify: 'terser', // 混淆器，terser构建后文件体积更小
      },
      publicDir:"public"
});
